package com.myl.core.exception;

import com.myl.core.enums.HttpStatusEnum;
import lombok.Getter;

/**
 * ServiceExceptionHandler
 * author: myl <ixiaomu@qq.com> 2023/12/20
 * tips:
 */
@Getter
public class ServiceExceptionHandler extends RuntimeException {

    private Integer code;

    /**
     * 使用已有的错误类型
     * @param type 枚举类中的错误类型
     */
    public ServiceExceptionHandler(HttpStatusEnum type){
        super(type.getMessage());
        this.code = type.getCode();
    }

    /**
     * 自定义错误类型,枚举中没有的错误类型
     * @param code 自定义的错误码
     * @param message 自定义的错误提示
     */
    public ServiceExceptionHandler(Integer code, String message){
        super(message);
        this.code = code;
    }

    /**
     * 指定错误类型，一般为业务提示
     * @param message 自定义的提示内容
     */
    public ServiceExceptionHandler(String message){
        super(message);
        this.code = HttpStatusEnum.BUSINESS_TIPS.getCode();
    }
}
